package com.ruoyi.clf.service.impl;

import java.util.List;

import com.ruoyi.clf.domain.IntegralDetails;
import com.ruoyi.clf.mapper.IntegralDetailsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.clf.mapper.IntegralMapper;
import com.ruoyi.clf.domain.Integral;
import com.ruoyi.clf.service.IIntegralService;

/**
 * 用户积分Service业务层处理
 * 
 * @author 常龙飞
 * @date 2025-05-12
 */
@Service
public class IntegralServiceImpl implements IIntegralService 
{
    @Autowired
    private IntegralMapper integralMapper;

    /**
     * 查询用户积分
     * 
     * @param id 用户积分主键
     * @return 用户积分
     */
    @Override
    public Integral selectIntegralById(Long id)
    {
        return integralMapper.selectIntegralById(id);
    }

    /**
     * 查询用户积分列表
     * 
     * @param integral 用户积分
     * @return 用户积分
     */
    @Override
    public List<Integral> selectIntegralList(Integral integral)
    {
        return integralMapper.selectIntegralList(integral);
    }

    /**
     * 新增用户积分
     * 
     * @param integral 用户积分
     * @return 结果
     */
    @Override
    public int insertIntegral(Integral integral)
    {
        return integralMapper.insertIntegral(integral);
    }

    /**
     * 修改用户积分
     * 
     * @param integral 用户积分
     * @return 结果
     */
    @Override
    public int updateIntegral(Integral integral)
    {
        return integralMapper.updateIntegral(integral);
    }

    /**
     * 批量删除用户积分
     * 
     * @param ids 需要删除的用户积分主键
     * @return 结果
     */
    @Override
    public int deleteIntegralByIds(Long[] ids)
    {
        return integralMapper.deleteIntegralByIds(ids);
    }

    /**
     * 删除用户积分信息
     * 
     * @param id 用户积分主键
     * @return 结果
     */
    @Override
    public int deleteIntegralById(Long id)
    {
        return integralMapper.deleteIntegralById(id);
    }

    @Override
    public Integral selectIntegralByUserId(Long userId) {
        return  integralMapper.selectIntegralByUserId(userId);
    }
//    消费增加积分
    @Autowired
    private IntegralDetailsMapper integralDetailMapper;
    @Override
    public int updateIntegralByUserId(Long userId, Long price) {

//        通过用户id查询积分
        Integral integral = integralMapper.selectIntegralByUserId( userId);
        if(integral == null){
            System.out.println("新用户");
//            新用户
            Integral integral1 = new Integral();
            integral1.setUserId(userId);
            integral1.setIntegral(price);
            int i = integralMapper.insertIntegral(integral1);
            if(i==0){
                System.out.println("插入失败");
            }else{
                System.out.println("插入成功");
            }
//             增加积分详情表
            IntegralDetails integralDetails = new IntegralDetails();
            integralDetails.setUserId(userId);
            integralDetails.setStatus(2l);
            integralDetails.setContent("购买商品");
            integralDetails.setValue(price);
            integralDetails.setTime(new java.util.Date());
            integralDetailMapper.insertIntegralDetails(integralDetails);
        }else{
            System.out.println("老用户");
//            老用户(增加积分)
            integral.setIntegral(integral.getIntegral()+price);
             integralMapper.updateIntegral(integral);
//             增加积分详情表
            IntegralDetails integralDetails = new IntegralDetails();
            integralDetails.setUserId(userId);
            integralDetails.setStatus(2l);
            integralDetails.setContent("购买商品");
            integralDetails.setValue(price);
            integralDetails.setTime(new java.util.Date());
            integralDetailMapper.insertIntegralDetails(integralDetails);



        }


        return 1;
    }
}
